package dsk.demo.product.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import dsk.demo.common.utils.PageUtils;
import dsk.demo.product.dto.ProductQueryDto;
import dsk.demo.product.dto.ProductSaveDto;
import dsk.demo.product.entity.ProductEntity;
import dsk.demo.product.vo.ProductVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 *
 *
 * @author daishikun
 * @email 940798525@qq.com
 * @date 2022-09-17 09:09:41
 */
public interface ProductService extends IService<ProductEntity> {

    PageUtils queryPage(ProductQueryDto dto);

    PageUtils queryHoutaiPage(ProductQueryDto dto);

    List<ProductVo> queryRandomList(ProductQueryDto dto);

    ProductVo getDetailById(Long id);

    List<ProductEntity> queryByProductNos(List<String> productNos);

    /**
     * 保存新产品数据(车型||OEM号码)
     *
     * @param product
     */
    void saveOrUpdateProduct(ProductSaveDto product);

    void saveImage(Long productId, String filePath, Integer type);

    List<ProductEntity> excel2ProductEntityList(MultipartFile file);

    Long getMaxId();

    Long getIdByProductNo(String productNo);

//    void queryPageByCatalogId(ProductQueryDto product);

    /**
     * 查询相似的产品,   当前产品ID开始 往前查询5个 往后查询5个产品
     * 只需查询产品名称, 产品id, 产品属性
     *
     * @param catalogId
     * @param productId
     * @return
     */
    List<ProductEntity> querySimilarProducts(Long catalogId,Long productId);

    void updateList(List<ProductEntity> productEntities);
}

